//package com.study.studyfive.redis;
//
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.dao.DataAccessException;
//import org.springframework.http.MediaType;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Set;
//
//@RestController
//@RequestMapping("/redis")
//public class RedisController {
//
//    // 用下面5个对象来操作对应的类型
//    //this.redisTemplate.opsForValue(); //提供了操作string类型的所有方法
//    //this.redisTemplate.opsForList(); // 提供了操作list类型的所有方法
//    //this.redisTemplate.opsForSet(); //提供了操作set的所有方法
//    //this.redisTemplate.opsForHash(); //提供了操作hash表的所有方法
//    //this.redisTemplate.opsForZSet(); //提供了操作zset的所有方法
//
//    @Autowired
//    private RedisTemplate<String, String> redisTemplate;
//    /**
//     * string测试
//     *
//     * @return
//     */
//    @RequestMapping("/stringTest")
//    public String stringTest() {
//        this.redisTemplate.delete("name");
//        this.redisTemplate.opsForValue().set("name", "路人");
//        String name = this.redisTemplate.opsForValue().get("name");
//        return name;
//    }
//
//    /**
//     * list测试
//     *
//     * @return
//     */
//    @RequestMapping("/listTest")
//    public List<String> listTest() {
//        this.redisTemplate.delete("names");
//        this.redisTemplate.opsForList().rightPushAll("names", "刘德华", "张学友",
//                "郭富城", "黎明");
//
//        List<String> courses = this.redisTemplate.opsForList().range("names", 0,
//                -1);
//        return courses;
//    }
//
//    /**
//     * set类型测试
//     *
//     * @return
//     */
//    @RequestMapping("setTest")
//    public Set<String> setTest() {
//        this.redisTemplate.delete("courses");
//        this.redisTemplate.opsForSet().add("courses", "java", "spring",
//                "springboot");
//        Set<String> courses = this.redisTemplate.opsForSet().members("courses");
//        return courses;
//    }
//
//    /**
//     * hash表测试
//     *
//     * @return
//     */
//    @RequestMapping("hashTest")
//    public Map<Object, Object> hashTest() {
//        this.redisTemplate.delete("userMap");
//        Map<String, String> map = new HashMap<>();
//        map.put("name", "路人");
//        map.put("age", "30");
//        this.redisTemplate.opsForHash().putAll("userMap", map);
//        Map<Object, Object> userMap =
//                this.redisTemplate.opsForHash().entries("userMap");
//        return userMap;
//    }
//
//    /**
//     * zset测试
//     *
//     * @return
//     */
//    @RequestMapping("zsetTest")
//    public Set<String> zsetTest() {
//        this.redisTemplate.delete("languages");
//        this.redisTemplate.opsForZSet().add("languages", "java", 100d);
//        this.redisTemplate.opsForZSet().add("languages", "c", 95d);
//        this.redisTemplate.opsForZSet().add("languages", "php", 70);
//        Set<String> languages =
//                this.redisTemplate.opsForZSet().range("languages", 0, -1);
//        return languages;
//    }
//
//    /**
//     * 查看redis机器信息
//     *
//     * @return
//     */
//    @RequestMapping(value = "/info", produces = MediaType.TEXT_PLAIN_VALUE)
//    public String info() {
//        Object obj = this.redisTemplate.execute(new RedisCallback<Object>() {
//            @Override
//            public Object doInRedis(RedisConnection connection) throws
//                    DataAccessException {
//                return connection.execute("info");
//            }
//        });
//        return obj.toString();
//    }
//
//}
